Micron Document
Livres et Wikis | Archives | Info


Connected Data Objects
layout: Wide Β· Narrow Β· Centered
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Connected Data Objects (CDO) is a free implementation of a Distributed Shared Model on top of the Eclipse Modeling Framework (EMF).

With CDO, programmers can easily enhance existing EMF models in such a way that they can be stored and subsequently maintained in a central model repository. While object relational mapping against a JDBC data source on the server side is the shipped default, CDO provides for pluggable storage adapters that allow you to develop and use different mappers (like Hibernate- or OODB-based). On the client side, CDO provides a default integration with EMF, the Eclipse Modeling Framework, although other model integrations on top of the CDO protocol are imaginable as well.

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Model integration features

β€’ EMF integration at model level (as opposed to the edit level)
β€’ Support for generated models (just switch two .genmodel properties)
β€’ Support for dynamic models (just load .ecore file and commit to repository)
β€’ Support for legacy models (for compiled models without access to .genmodel)
β€’ Support for the Ecore meta model and descendants

User interface features

β€’ Eclipse view for working with CDO sessions, transactions, views and resources
β€’ Package Manager dialog per session
β€’ Eclipse editor for working with resources and objects

Client side features

β€’ Multiple sessions to multiple repositories on multiple servers
β€’ Multiple transactions per session
β€’ Multiple read-only views per session
β€’ Multiple audit views per session (an audit is a view that shows a consistent, historical version of a repository)
β€’ Multiple resources per view (a view is always associated with its own EMF ResourceSet)
β€’ Inter-resource proxy resolution
β€’ Multiple root objects per resource
β€’ Object state shared among all views of a session
β€’ Object graph internally unconnected (unused parts of the graph can easily be reclaimed by the garbage collector)
β€’ Only new and modified objects committed in a transaction
β€’ Transactions can span multiple resources
β€’ Demand loading of objects (resources are populated as they are navigated)
β€’ Partial loading of collections (chunk size can be configured per session)
β€’ Adaptable pre-fetching of objects (different intelligent usage analyzers are available)
β€’ Asynchronous object invalidation (optional)
β€’ Clean API to work with sessions, views, transactions and objects
β€’ CDOResources are EObjects as well
β€’ Objects carry meta information like id, state, version and life span
β€’ Support for OSGi environments (headless, Eclipse RCP, ...)
β€’ Support for standalone applications (non-OSGi)

Network protocol features

β€’ Net4j based binary application protocol
β€’ Pluggable transport layer (shipped with NIO socket transport and JVM embedded transport)
β€’ Pluggable fail over support
β€’ Pluggable authentication (shipped with challenge/response negotiation)
β€’ Multiple acceptors per server

Server side features

β€’ Pluggable storage adapters
β€’ Multiple repositories per server
β€’ Multiple models (packages) per repository
β€’ Multiple resources (instance documents) per repository
β€’ Expressive XML configuration file
β€’ Configurable storage adapter per repository (see below)
β€’ Configurable caching per repository
β€’ Clean API to work with repositories, sessions, views, transactions and revisions
β€’ Support for OSGi environments (usually headless)
β€’ Support for standalone applications (non-OSGi)

DB store features

β€’ Supports all optional features of the CDO Server
β€’ Pluggable SQL dialect adapters
β€’ Includes support for Derby, HSQLDB, MySQL and Oracle (TBD)
β€’ Pluggable mapping strategies
β€’ Includes horizontal mapping strategy (one table per concrete class)
β€’ Includes vertical mapping strategy (TBD, one table per class in hierarchy)
β€’ Supports different mapping modes for collections

External links

β€’ CDO Homepage